package spring.study.annotation.cofig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import spring.study.annotation.bean.Car;

/**
 * @author study
 * @version 1.0
 * @date 2020/6/19 17:12
 * bean 生命周期
 * 初始化：
 * 对象创建完成，并赋值好，调用初始化方法。
 * <p>
 * 销毁：
 * 容器关闭的时候进行销毁，但是多实例的bean 容器不会管理这个bean,容器不会调用销毁。
 * 通过bean 实现  InitializingBean, DisposableBean 自定义 初始化和销毁方法
 * 可以通过JSR250
 *          @PostConstruct 在bean创建完成
 *          @PreDestory 在bean销毁的时候执行
 *4 BeanPostProcessor
 *
 *
 *
 */
@Configuration
@ComponentScan("spring.study.annotation.bean")
public class MainConfigOfLifeCycle {

    @Bean(initMethod = "init", destroyMethod = "destory")
    public Car car() {
        return new Car();
    }
}
